package com.vue3.blog.domain.dto;

import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author Mr.小朱同学
 * @version 1.0.0
 * @date 2025/6/13 19:49
 * @description 文章评论
 */
@Data
public class CommentDTO implements Serializable {
    /**
     * 评论唯一标识（主键）
     */
    private Long id;

    /**
     * 评论所属文章ID（外键）
     * 关联到文章表的主键，标识该评论属于哪篇文章
     */
    @NotNull(message = "文章ID不能为空")
    private Long postId;

    /**
     * 是否作者评论标识
     * 0-普通用户评论，1-文章作者评论
     */
    private Integer isAuthor = 0;

    /**
     * 评论人名称
     * 发表评论的用户昵称或名称
     */
    @NotEmpty(message = "评论人名称不能为空")
    private String nickname;

    /**
     * 联系方式
     * 评论人的联系信息（如邮箱、手机号等）
     */
    @NotEmpty(message = "联系方式不能为空")
    private String email;

    /**
     * 评论内容
     * 用户发表的评论文本内容
     */
    @NotEmpty(message = "评论内容不能为空")
    private String content;

    /**
     * 父评论ID
     * 用于构建评论层级结构，指向被回复的评论ID
     */
    private Long parentId = 0L;
}